ob_set_subtarget(ob_share_extra ALONE
  vector/ob_vector_base.cpp
  vector/vector_basic_op.cpp
  vector/ob_fixed_length_vector.cpp
  vector/ob_continuous_vector.cpp
  vector/ob_discrete_vector.cpp
  vector/ob_uniform_vector.cpp
  vector/ob_uniform_base.cpp
  vector/ob_fixed_length_base.cpp
  vector/ob_discrete_base.cpp
  vector/ob_continuous_base.cpp
  vector/ob_uniform_const_vector.cpp

  aggregate/approx_count_distinct.cpp
  aggregate/count.cpp
  aggregate/iaggregate.cpp
  aggregate/processor.cpp
  aggregate/single_row.cpp
  aggregate/single_row_sum.cpp
  aggregate/single_row_count.cpp
  aggregate/sum.cpp
  aggregate/sys_bit.cpp
  aggregate/aggr_extra.cpp
  aggregate/rb_agg.cpp
  aggregate/single_row_max.cpp
  aggregate/single_row_min.cpp
  aggregate/single_row_count_sum.cpp
  aggregate/min.cpp
  aggregate/max.cpp
  aggregate/arg_min.cpp
  aggregate/arg_max.cpp
  aggregate/approx_count_distinct_mysql.cpp
  aggregate/approx_count_distinct_oracle.cpp
  aggregate/sum_opnsize.cpp
  aggregate/group_concat.cpp
  aggregate/approx_count_distinct_synopsis.cpp
  aggregate/top_fre_hist.cpp
  aggregate/hybrid_hist.cpp
  aggregate/wm_concat.cpp
  aggregate/str_prefix_max.cpp

  vector/expr_cmp_func.cpp
  vector/expr_cmp_func_parts/expr_cmp_func_part_0.cpp
  vector/expr_cmp_func_parts/expr_cmp_func_part_1.cpp
  vector/expr_cmp_func_parts/expr_cmp_func_part_2.cpp
  vector/expr_cmp_func_parts/expr_cmp_func_part_3.cpp
  vector/expr_cmp_func_parts/expr_cmp_func_part_4.cpp
  vector/expr_cmp_func_parts/expr_cmp_func_part_5.cpp
  vector/expr_cmp_func_parts/expr_cmp_func_part_6.cpp
  vector/expr_cmp_func_parts/expr_cmp_func_part_7.cpp

  datum/ob_datum_funcs_compilation/ob_datum_funcs_compilation_0.cpp
  datum/ob_datum_funcs_compilation/ob_datum_funcs_compilation_1.cpp
  datum/ob_datum_funcs_compilation/ob_datum_funcs_compilation_2.cpp
  datum/ob_datum_funcs_compilation/ob_datum_funcs_compilation_3.cpp
  datum/ob_datum_funcs_compilation/ob_datum_funcs_compilation_4.cpp
  datum/ob_datum_funcs_compilation/ob_datum_funcs_compilation_5.cpp
  datum/ob_datum_funcs_compilation/ob_datum_funcs_compilation_6.cpp
  datum/ob_datum_funcs_compilation/ob_datum_funcs_compilation_7.cpp
  datum/ob_datum_funcs_compilation/ob_datum_funcs_all.cpp
  datum/ob_str_datum_funcs_compilation/ob_str_datum_funcs_compilation_0.cpp
  datum/ob_str_datum_funcs_compilation/ob_str_datum_funcs_compilation_1.cpp
  datum/ob_str_datum_funcs_compilation/ob_str_datum_funcs_compilation_2.cpp
  datum/ob_str_datum_funcs_compilation/ob_str_datum_funcs_compilation_3.cpp
  datum/ob_str_datum_funcs_compilation/ob_str_datum_funcs_compilation_4.cpp
  datum/ob_str_datum_funcs_compilation/ob_str_datum_funcs_compilation_5.cpp
  datum/ob_str_datum_funcs_compilation/ob_str_datum_funcs_compilation_6.cpp
  datum/ob_str_datum_funcs_compilation/ob_str_datum_funcs_compilation_7.cpp
  datum/ob_str_datum_funcs_compilation/ob_str_datum_funcs_all.cpp
  datum/ob_datum_funcs.cpp
)

ob_set_subtarget(ob_share vector
  vector/ob_discrete_format.cpp
  vector/ob_continuous_format.cpp
)

ob_set_subtarget(ob_share ALONE
  ob_rpc_struct.cpp
  ob_tenant_mgr.cpp
  parameter/ob_parameter_attr.cpp
  schema/ob_schema_service_sql_impl.cpp
  ob_srv_rpc_proxy.cpp
  ob_common_rpc_proxy.cpp
  ob_ddl_args.cpp
  ob_mview_args.cpp
  ob_lonely_table_clean_rpc_struct.cpp
  ob_create_hidden_tablev2_rpc_struct.cpp
  ob_external_resource_rpc_struct.cpp
)

file(GLOB SCHEMA_CPPS "inner_table/ob_inner_table_schema.*.cpp")
ob_set_subtarget(ob_share SCHEMA_CPPS
  ${SCHEMA_CPPS}
)

if(OB_BUILD_WITH_EMPTY_LOAD_SCHEMA)
  ob_set_subtarget(ob_share LOAD_SCHEMA inner_table/ob_load_inner_table_schema_empty.cpp)
else()
  ob_set_subtarget(ob_share LOAD_SCHEMA inner_table/ob_load_inner_table_schema.cpp)
endif()

ob_set_subtarget(ob_share DUMP_SCHEMA
  inner_table/ob_dump_inner_table_schema.cpp
)

ob_set_subtarget(ob_share aggregates
  aggregate/grouping.cpp
  aggregate/agg_reuse_cell.cpp
)

ob_set_subtarget(ob_share allocator
  allocator/ob_fifo_arena.cpp
  allocator/ob_memstore_allocator.cpp
  allocator/ob_handle_list.cpp
  allocator/ob_mds_allocator.cpp
  allocator/ob_shared_memory_allocator_mgr.cpp
  allocator/ob_tenant_mutil_allocator.cpp
  allocator/ob_tenant_mutil_allocator_mgr.cpp
  allocator/ob_tx_data_allocator.cpp
  allocator/ob_tenant_vector_allocator.cpp
)

ob_set_subtarget(ob_share backup
  backup/ob_archive_piece.cpp
  backup/ob_archive_struct.cpp
  backup/ob_archive_compatible.cpp
  backup/ob_archive_mode.cpp
  backup/ob_archive_persist_helper.cpp
  backup/ob_backup_clean_operator.cpp
  backup/ob_backup_clean_struct.cpp
  backup/ob_backup_clean_util.cpp
  backup/ob_backup_connectivity.cpp
  backup/ob_backup_io_adapter.cpp
  backup/ob_backup_path.cpp
  backup/ob_backup_server_mgr.cpp
  backup/ob_backup_struct.cpp
  backup/ob_tenant_archive_mgr.cpp
  backup/ob_tenant_archive_round.cpp
  backup/ob_backup_data_table_operator.cpp
  backup/ob_backup_tablet_reorganize_helper.cpp
  backup/ob_backup_helper.cpp
  backup/ob_archive_persist_helper.cpp
  backup/ob_backup_serialize_provider.cpp
  backup/ob_backup_store.cpp
  backup/ob_archive_store.cpp
  backup/ob_archive_checkpoint.cpp
  backup/ob_archive_path.cpp
  backup/ob_backup_config.cpp
  backup/ob_log_restore_config.cpp
  backup/ob_log_restore_struct.cpp
  backup/ob_archive_checkpoint_mgr.cpp
)

ob_set_subtarget(ob_share cache
  cache/ob_kv_storecache.cpp
  cache/ob_kvcache_inst_map.cpp
  cache/ob_kvcache_map.cpp
  cache/ob_kvcache_store.cpp
  cache/ob_kvcache_struct.cpp
  cache/ob_kvcache_hazard_version.cpp
  cache/ob_kvcache_pre_warmer.cpp
  cache/ob_kvcache_pointer_swizzle.cpp
  cache/ob_kvcache_hazard_pointer.cpp
  cache/ob_kvcache_hazard_domain.cpp
)

ob_set_subtarget(ob_share common
  ob_alive_server_tracer.cpp
  ob_all_server_tracer.cpp
  ob_arbitration_service_status.cpp
  ob_autoincrement_param.cpp
  ob_autoincrement_service.cpp
  ob_bg_thread_monitor.cpp
  ob_cascad_member.cpp
  ob_cascad_member_list.cpp
  ob_cluster_role.cpp
  ob_cluster_version.cpp
  ob_column_checksum_error_operator.cpp
  ob_core_table_proxy.cpp
  ob_ddl_checksum.cpp
  ob_ddl_sim_point.cpp
  ob_ddl_common.cpp
  ob_ddl_error_message_table_operator.cpp
  ob_tablet_reorganize_history_table_operator.cpp
  ob_ddl_task_executor.cpp
  ob_debug_sync.cpp
  ob_debug_sync_point.cpp
  ob_device_manager.cpp
  ob_disk_usage_table_operator.cpp
  ob_dml_sql_splicer.cpp
  ob_encryption_struct.cpp
  ob_encryption_util_os.cpp
  ob_errno.cpp
  ob_event_history_table_operator.cpp
  ob_tenant_id_schema_version.cpp
  ob_freeze_info_proxy.cpp
  ob_gais_client.cpp
  ob_gais_msg.cpp
  ob_gais_rpc.cpp
  ob_get_compat_mode.cpp
  ob_global_autoinc_service.cpp
  ob_global_context_operator.cpp
  ob_global_merge_table_operator.cpp
  ob_global_stat_proxy.cpp
  ob_gts_info.cpp
  ob_heap_organized_table_util.cpp
  ob_i_tablet_scan.cpp
  ob_index_builder_util.cpp
  ob_fts_index_builder_util.cpp
  ob_inner_config_root_addr.cpp
  ob_io_device_helper.cpp
  ob_kv_parser.cpp
  ob_log_restore_proxy.cpp
  ob_label_security_os.cpp
  ob_leader_election_waiter.cpp
  ob_lease_struct.cpp
  ob_heartbeat_handler.cpp
  ob_heartbeat_struct.cpp
  ob_list_parser.cpp
  ob_local_device.cpp
  ob_locality_info.cpp
  ob_locality_priority.cpp
  ob_locality_table_operator.cpp
  ob_ls_id.cpp
  ob_table_range.cpp
  ob_max_id_fetcher.cpp
  ob_occam_time_guard.cpp
  ob_order_perserving_encoder.cpp
  ob_partition_modify.cpp
  ob_primary_zone_util.cpp
  ob_priv_common.cpp
  ob_proposal_id.cpp
  ob_plugin_helper.cpp
  ob_replica_info.cpp
  ob_resource_limit.cpp
  ob_root_addr_agent.cpp
  ob_rpc_share.cpp
  ob_rs_mgr.cpp
  ob_scanner.cpp
  ob_schema_status_proxy.cpp
  ob_server_blacklist.cpp
  ob_server_locality_cache.cpp
  ob_server_status.cpp
  ob_server_struct.cpp
  ob_server_table_operator.cpp
  ob_server_check_utils.cpp
  ob_service_epoch_proxy.cpp
  ob_share_util.cpp
  ob_simple_batch.cpp
  ob_simple_mem_limit_getter.cpp
  ob_snapshot_table_proxy.cpp
  ob_tablet_autoincrement_param.cpp
  ob_tablet_autoincrement_service.cpp
  ob_tablet_checksum_iterator.cpp
  ob_tablet_checksum_operator.cpp
  ob_tablet_replica_checksum_operator.cpp
  ob_tablet_meta_table_compaction_operator.cpp
  ob_task_define.cpp
  ob_tenant_info_proxy.cpp
  ob_tenant_role.cpp
  ob_tenant_switchover_status.cpp
  ob_tenant_mem_limit_getter.cpp
  ob_tenant_memstore_info_operator.cpp
  ob_thread_mgr.cpp
  ob_time_utility2.cpp
  ob_time_zone_info_manager.cpp
  ob_unique_index_row_transformer.cpp
  ob_unit_getter.cpp
  ob_unit_table_operator.cpp
  ob_upgrade_utils.cpp
  ob_virtual_table_iterator.cpp
  ob_virtual_table_projector.cpp
  ob_virtual_table_scanner_iterator.cpp
  ob_web_service_root_addr.cpp
  ob_zone_info.cpp
  ob_freeze_info_manager.cpp
  ob_zone_merge_info.cpp
  ob_zone_merge_table_operator.cpp
  ob_zone_table_operation.cpp
  ob_rootservice_list.cpp
  ob_admin_dump_helper.cpp
  ob_inner_kv_table_operator.cpp
  ob_inner_table_operator.cpp
  ob_standby_upgrade.cpp
  ob_common_id.cpp
  ob_cluster_event_history_table_operator.cpp
  scn.cpp
  ob_throttling_utils.cpp
  ob_partition_split_query.cpp
  ob_storage_ha_diagnose_struct.cpp
  ob_storage_ha_diagnose_operator.cpp
  ob_vec_index_builder_util.cpp
  ob_domain_index_builder_util.cpp
  ob_service_name_proxy.cpp
  ob_compatibility_control.cpp
  ob_device_credential_task.cpp
  ob_define.cpp
  ob_dynamic_partition_manager.cpp
  ob_scheduled_manage_dynamic_partition.cpp
  ob_batch_selector.cpp
  ob_timezone_importer.cpp
  ob_srs_importer.cpp
  ob_compute_property.cpp
  ob_perf_stat.cpp
  ob_flashback_standby_log_struct.cpp
  ob_flashback_log_scn_table_operator.cpp
)

ob_set_subtarget(ob_share common_mixed
  client_feedback/ob_client_feedback_basic.cpp
  client_feedback/ob_client_feedback_manager.cpp
  client_feedback/ob_feedback_int_struct.cpp
  client_feedback/ob_feedback_partition_struct.cpp
  datum/ob_datum.cpp
  datum/ob_datum_cmp_func_def.cpp
  diagnosis/ob_sql_monitor_statname.cpp
  diagnosis/ob_profile_name_def.cpp
  diagnosis/ob_profile_util.cpp
  diagnosis/ob_runtime_metrics.cpp
  diagnosis/ob_runtime_profile.cpp
  diagnosis/ob_sql_plan_monitor_node_list.cpp
  interrupt/ob_global_interrupt_call.cpp
  interrupt/ob_interrupt_rpc_proxy.cpp
  location_cache/ob_location_service.cpp
  location_cache/ob_location_struct.cpp
  location_cache/ob_location_update_task.cpp
  location_cache/ob_ls_location_service.cpp
  location_cache/ob_ls_location_map.cpp
  location_cache/ob_tablet_ls_service.cpp
  location_cache/ob_tablet_ls_map.cpp
  location_cache/ob_tablet_location_broadcast.cpp
  location_cache/ob_vtable_location_service.cpp
  location_cache/ob_tablet_location_refresh_service.cpp
  inner_table/ob_inner_table_schema.vt.cpp
  inner_table/ob_inner_table_schema.lob.cpp
  inner_table/ob_inner_table_schema_misc.ipp
  inner_table/ob_sslog_table_schema.cpp
  object/ob_obj_cast.cpp
  parameter/ob_parameter_seed.ipp
  ratelimit/ob_rl_mgr.cpp
  ratelimit/ob_rl_rpc.cpp
  ratelimit/ob_rl_struct.cpp
  rc/ob_context.cpp
  rc/ob_tenant_base.cpp
  restore/ob_import_table_struct.cpp
  restore/ob_import_util.cpp
  restore/ob_recover_table_util.cpp
  restore/ob_restore_uri_parser.cpp
  restore/ob_ls_restore_status.cpp
  restore/ob_restore_type.cpp
  restore/ob_physical_restore_info.cpp
  restore/ob_physical_restore_table_operator.cpp
  restore/ob_log_restore_source.cpp
  restore/ob_log_restore_source_mgr.cpp
  restore/ob_restore_table_operator.cpp
  restore/ob_recover_table_persist_helper.cpp
  restore/ob_restore_persist_helper.cpp
  restore/ob_import_table_persist_helper.cpp
  restore/ob_import_item_format_provider.cpp
  restore/ob_import_schema_item.hpp
  restore/ob_import_partition_item.cpp
  restore/ob_import_table_item.cpp
  restore/ob_remap_schema_item.hpp
  restore/ob_import_remap_arg.cpp
  restore/ob_import_table_arg.cpp
  restore/ob_import_arg.cpp
  sequence/ob_sequence_cache.cpp
  sequence/ob_sequence_ddl_proxy.cpp
  sequence/ob_sequence_dml_proxy.cpp
  sequence/ob_sequence_option.cpp
  sequence/ob_sequence_option_builder.cpp
  shared_storage/ob_ss_local_cache_control_mode.cpp
  system_variable/ob_nls_system_variable.cpp
  system_variable/ob_system_variable.cpp
  system_variable/ob_system_variable_factory.cpp
  system_variable/ob_system_variable_init.cpp
  ob_lob_access_utils.cpp
  ob_json_access_utils.cpp
  table/ob_table.cpp
  table/ob_table_rpc_struct.cpp
  table/ob_table_ddl_struct.cpp
  table/ob_table_load_define.cpp
  table/ob_table_load_dml_stat.cpp
  table/ob_table_load_row.cpp
  transfer/ob_transfer_info.cpp
  transfer/ob_transfer_task_operator.cpp
  detect/ob_detect_manager.cpp
  detect/ob_detectable_id.cpp
  detect/ob_detect_callback.cpp
  detect/ob_detect_rpc_proxy.cpp
  detect/ob_detect_rpc_processor.cpp
  detect/ob_detect_manager_utils.cpp
  table/ob_table_load_sql_statistics.cpp
  tenant_snapshot/ob_tenant_snapshot_id.cpp
  tenant_snapshot/ob_tenant_snapshot_table_operator.cpp
  table/ob_ttl_util.cpp
  table/ob_table_config_util.cpp
  restore/ob_tenant_clone_table_operator.cpp
  index_usage/ob_index_usage_info_mgr.cpp
  index_usage/ob_index_usage_report_task.cpp
  table/ob_table_util.cpp
  table/ob_table_object.cpp
  scheduler/ob_tenant_dag_scheduler.cpp
  scheduler/ob_independent_dag.cpp
  scheduler/ob_sys_task_stat.cpp
  scheduler/ob_dag_warning_history_mgr.cpp
  scheduler/ob_partition_auto_split_helper.cpp
  compaction/ob_compaction_locality_cache.cpp
  compaction/ob_table_ckm_items.cpp
  compaction/ob_compaction_time_guard.cpp
  compaction/ob_schedule_batch_size_mgr.cpp
  compaction/ob_compaction_timer_task_mgr.cpp
  compaction/ob_batch_exec_dag.cpp
  compaction/ob_new_micro_info.cpp
  storage/ob_i_pre_warmer.cpp
  storage_cache_policy/ob_storage_cache_common.cpp
  storage_cache_policy/ob_storage_cache_partition_sql_helper.cpp
  partition_table/ob_partition_location.cpp
  longops_mgr/ob_ddl_longops.cpp
  longops_mgr/ob_i_longops.cpp
  longops_mgr/ob_longops_mgr.cpp
  ash/ob_active_sess_hist_list.cpp
  ash/ob_active_sess_hist_task.cpp
  ash/ob_ash_refresh_task.cpp
  ash/ob_di_util.cpp
  throttle/ob_share_throttle_define.cpp
  throttle/ob_throttle_common.cpp
  restore/ob_restore_data_mode.cpp
  rebuild_tablet/ob_rebuild_tablet_location.cpp
  table/redis/ob_redis_parser.cpp
  table/redis/ob_redis_common.cpp
  table/redis/ob_redis_util.cpp
  table/redis/ob_redis_error.cpp
  table/ob_redis_importer.cpp
  restore/ob_restore_progress_display_mode.cpp
)

ob_set_subtarget(ob_share tablet
  tablet/ob_tablet_info.cpp
  tablet/ob_tablet_table_operator.cpp
  tablet/ob_tablet_to_ls_operator.cpp
  tablet/ob_tablet_table_iterator.cpp
  tablet/ob_tablet_to_ls_iterator.cpp
  tablet/ob_tablet_filter.cpp
  tablet/ob_tablet_to_table_history_operator.cpp
  tablet/ob_tenant_tablet_to_ls_map.cpp
)

ob_set_subtarget(ob_share config
  config/ob_common_config.cpp
  config/ob_config.cpp
  config/ob_config_helper.cpp
  config/ob_config_manager.cpp
  config/ob_reload_config.cpp
  config/ob_server_config.cpp
  config/ob_system_config.cpp
  config/ob_system_config_key.cpp
)

ob_set_subtarget(ob_share deadlock
  deadlock/ob_deadlock_detector_common_define.cpp
  deadlock/ob_deadlock_detector_mgr.cpp
  deadlock/ob_deadlock_detector_rpc.cpp
  deadlock/ob_deadlock_inner_table_service.cpp
  deadlock/ob_deadlock_key_wrapper.cpp
  deadlock/ob_deadlock_message.cpp
  deadlock/ob_lcl_scheme/ob_lcl_batch_sender_thread.cpp
  deadlock/ob_lcl_scheme/ob_lcl_message.cpp
  deadlock/ob_lcl_scheme/ob_lcl_node.cpp
  deadlock/ob_lcl_scheme/ob_lcl_utils.cpp
)

ob_set_subtarget(ob_share ls
  ls/ob_inmemory_ls_table.cpp
  ls/ob_ls_info.cpp
  ls/ob_ls_operator.cpp
  ls/ob_ls_status_operator.cpp
  ls/ob_ls_life_manager.cpp
  ls/ob_ls_table.cpp
  ls/ob_ls_table_operator.cpp
  ls/ob_persistent_ls_table.cpp
  ls/ob_rpc_ls_table.cpp
  ls/ob_ls_table_iterator.cpp
  ls/ob_ls_replica_filter.cpp
  ls/ob_ls_recovery_stat_operator.cpp
  ls/ob_ls_creator.cpp
  ls/ob_ls_election_reference_info_operator.cpp
  ls/ob_ls_log_stat_info.cpp
  ls/ob_alter_ls_struct.cpp
)

ob_set_subtarget(ob_share redolog
  redolog/ob_clog_switch_write_callback.cpp
  redolog/ob_log_file_group.cpp
  redolog/ob_log_file_handler.cpp
  redolog/ob_log_policy.cpp
)

ob_set_subtarget(ob_share rpc
  rpc/ob_batch_processor.cpp
  rpc/ob_batch_proxy.cpp
  rpc/ob_batch_rpc.cpp
  rpc/ob_blacklist_proxy.cpp
  rpc/ob_blacklist_req_processor.cpp
  rpc/ob_blacklist_resp_processor.cpp
)

ob_set_subtarget(ob_share resource_manager
  resource_manager/ob_cgroup_ctrl.cpp
  resource_manager/ob_resource_manager.cpp
  resource_manager/ob_resource_manager_proxy.cpp
  resource_manager/ob_resource_mapping_rule_manager.cpp
  resource_manager/ob_resource_col_mapping_rule_manager.cpp
  resource_manager/ob_resource_plan_info.cpp
  resource_manager/ob_resource_plan_manager.cpp
)

ob_set_subtarget(ob_share schema
  schema/ob_add_interval_part_controller.cpp
  schema/ob_column_schema.cpp
  schema/ob_constraint.cpp
  schema/ob_database_sql_service.cpp
  schema/ob_dblink_mgr.cpp
  schema/ob_dblink_sql_service.cpp
  schema/ob_ddl_sql_service.cpp
  schema/ob_dependency_info.cpp
  schema/ob_directory_mgr.cpp
  schema/ob_directory_sql_service.cpp
  schema/ob_error_info.cpp
  schema/ob_keystore_mgr.cpp
  schema/ob_keystore_sql_service.cpp
  schema/ob_label_se_policy_mgr.cpp
  schema/ob_label_se_policy_sql_service.cpp
  schema/ob_location_mgr.cpp
  schema/ob_location_schema_struct.cpp
  schema/ob_location_sql_service.cpp
  schema/ob_mock_fk_parent_table_mgr.cpp
  schema/ob_multi_version_schema_service.cpp
  schema/ob_objpriv_mysql_schema_struct.cpp
  schema/ob_outline_mgr.cpp
  schema/ob_outline_sql_service.cpp
  schema/ob_package_info.cpp
  schema/ob_package_mgr.cpp
  schema/ob_part_mgr_util.cpp
  schema/ob_partition_sql_helper.cpp
  schema/ob_priv_mgr.cpp
  schema/ob_priv_sql_service.cpp
  schema/ob_profile_mgr.cpp
  schema/ob_profile_sql_service.cpp
  schema/ob_rls_mgr.cpp
  schema/ob_rls_sql_service.cpp
  schema/ob_routine_info.cpp
  schema/ob_routine_mgr.cpp
  schema/ob_routine_sql_service.cpp
  schema/ob_schema_cache.cpp
  schema/ob_schema_macro_define.cpp
  schema/ob_schema_mem_mgr.cpp
  schema/ob_schema_mgr.cpp
  schema/ob_schema_mgr_cache.cpp
  schema/ob_schema_printer.cpp
  schema/ob_schema_printer_external_table.cpp
  schema/ob_schema_retrieve_utils.ipp
  schema/ob_schema_service.cpp
  schema/ob_schema_service_rpc_proxy.cpp
  schema/ob_schema_store.cpp
  schema/ob_schema_utils.cpp
  schema/ob_security_audit_mgr.cpp
  schema/ob_security_audit_sql_service.cpp
  schema/ob_sequence_mgr.cpp
  schema/ob_synonym_mgr.cpp
  schema/ob_synonym_sql_service.cpp
  schema/ob_sys_variable_mgr.cpp
  schema/ob_sys_variable_sql_service.cpp
  schema/ob_table_dml_param.cpp
  schema/ob_table_iter.cpp
  schema/ob_table_param.cpp
  schema/ob_table_sql_service.cpp
  schema/ob_tablegroup_sql_service.cpp
  schema/ob_tablespace_mgr.cpp
  schema/ob_tablespace_sql_service.cpp
  schema/ob_tenant_schema_service.cpp
  schema/ob_tenant_sql_service.cpp
  schema/ob_trigger_info.cpp
  schema/ob_trigger_mgr.cpp
  schema/ob_trigger_sql_service.cpp
  schema/ob_udf.cpp
  schema/ob_udf_mgr.cpp
  schema/ob_udf_sql_service.cpp
  schema/ob_udt_info.cpp
  schema/ob_udt_mgr.cpp
  schema/ob_udt_sql_service.cpp
  schema/ob_user_sql_service.cpp
  schema/ob_context_sql_service.cpp
  schema/ob_context_mgr.cpp
  schema/ob_context_ddl_proxy.cpp
  schema/ob_ddl_epoch.cpp
  schema/ob_ddl_trans_controller.cpp
  schema/ob_schema_getter_guard.cpp
  schema/ob_schema_getter_guard_location.cpp
  schema/ob_schema_getter_guard_objpriv_mysql.cpp
  schema/ob_schema_getter_guard_priv.cpp
  schema/ob_schema_getter_guard_ccl_rule.cpp
  schema/ob_schema_struct.cpp
  schema/ob_sequence_sql_service.cpp
  schema/ob_server_schema_service.cpp
  schema/ob_table_schema.cpp
  schema/ob_table_schema_vec_index.cpp
  schema/ob_iceberg_table_schema.cpp
  schema/ob_latest_schema_guard.cpp
  schema/ob_mlog_info.cpp
  schema/ob_mview_info.cpp
  schema/ob_mview_refresh_stats_params.cpp
  schema/ob_mview_refresh_stats.cpp
  schema/ob_list_row_values.cpp
  schema/ob_catalog_schema_struct.cpp
  schema/ob_catalog_mgr.cpp
  schema/ob_catalog_sql_service.cpp
  schema/ob_external_resource_mgr.cpp
  schema/ob_external_resource_schema_struct.cpp
  schema/ob_external_resource_sql_service.cpp
  schema/ob_external_table_column_schema_helper.cpp
  schema/ob_location_schema_struct.cpp
  schema/ob_schema_getter_guard_location.cpp
  schema/ob_ai_model_mgr.cpp
  schema/ob_ai_model_sql_service.cpp
  schema/ob_ccl_schema_struct.cpp
  schema/ob_ccl_rule_mgr.cpp
  schema/ob_ccl_rule_sql_service.cpp

)

ob_set_subtarget(ob_share stat
  stat/ob_basic_stats_estimator.cpp
  stat/ob_opt_stat_monitor_manager.cpp
  stat/ob_dbms_stats_copy_table_stats.cpp
  stat/ob_dbms_stats_executor.cpp
  stat/ob_dbms_stats_export_import.cpp
  stat/ob_dbms_stats_history_manager.cpp
  stat/ob_dbms_stats_lock_unlock.cpp
  stat/ob_dbms_stats_preferences.cpp
  stat/ob_dbms_stats_utils.cpp
  stat/ob_hybrid_hist_estimator.cpp
  stat/ob_incremental_stat_estimator.cpp
  stat/ob_opt_column_stat.cpp
  stat/ob_opt_osg_column_stat.cpp
  stat/ob_opt_column_stat_cache.cpp
  stat/ob_opt_stat_manager.cpp
  stat/ob_opt_stat_service.cpp
  stat/ob_opt_stat_sql_service.cpp
  stat/ob_opt_table_stat.cpp
  stat/ob_opt_table_stat_cache.cpp
  stat/ob_stat_define.cpp
  stat/ob_stat_item.cpp
  stat/ob_stats_estimator.cpp
  stat/ob_topk_hist_estimator.cpp
  stat/ob_index_stats_estimator.cpp
  stat/ob_dbms_stats_maintenance_window.cpp
  stat/ob_opt_stat_gather_stat.cpp
  stat/ob_opt_ds_stat.cpp
  stat/ob_opt_ds_stat_cache.cpp
  stat/ob_dbms_stats_gather.cpp
  stat/ob_opt_system_stat.cpp
  stat/ob_opt_system_stat_cache.cpp
  stat/ob_min_max_estimator.cpp
  stat/ob_column_store_refine_estimator.cpp
  stat/ob_lake_table_stat.cpp
  stat/ob_opt_external_column_stat.cpp
  stat/ob_opt_external_column_stat_builder.cpp
  stat/ob_opt_external_column_stat_cache.cpp
  stat/ob_opt_external_table_stat.cpp
  stat/ob_opt_external_table_stat_cache.cpp
  stat/ob_opt_external_table_stat_builder.cpp
  stat/hive/ob_hive_hll_utils.cpp
  stat/hive/ob_hive_hll_constants.cpp
  stat/hive/ob_hive_hll.cpp
  stat/hive/ob_hive_hll_dense_register.cpp
  stat/hive/ob_hive_hll_sparse_register.cpp
  stat/hive/ob_hive_fm_sketch.cpp
  stat/hive/ob_hive_fm_sketch_utils.cpp
)

ob_set_subtarget(ob_share external_table
  external_table/ob_hdfs_storage_info.cpp
  external_table/ob_hdfs_table_device.cpp
  external_table/ob_external_table_file_mgr.cpp
  external_table/ob_external_table_file_rpc_processor.cpp
  external_table/ob_external_table_file_task.cpp
  external_table/ob_external_table_utils.cpp
  external_table/ob_external_table_part_info.cpp
  external_table/ob_external_object_ctx.cpp
)

ob_set_subtarget(ob_share catalog
  catalog/ob_catalog_properties.cpp
  catalog/ob_external_catalog.cpp
  catalog/ob_catalog_meta_getter.cpp
  catalog/ob_cached_catalog_meta_getter.cpp
  catalog/ob_catalog_utils.cpp
  catalog/ob_catalog_location_schema_provider.cpp
  catalog/odps/ob_odps_catalog_utils.cpp
  catalog/odps/ob_odps_catalog.cpp
  catalog/filesystem/ob_filesystem_catalog.cpp
  catalog/hive/thrift/gen_cpp/FacebookService.cpp
  catalog/hive/thrift/gen_cpp/fb303_types.cpp
  catalog/hive/thrift/gen_cpp/hive_metastore_constants.cpp
  catalog/hive/thrift/gen_cpp/hive_metastore_types.cpp
  catalog/hive/thrift/gen_cpp/ThriftHiveMetastore.cpp
  catalog/hive/thrift/transport/ob_t_sasl_client_transport.cpp
  catalog/hive/thrift/transport/ob_t_sasl_transport.cpp
  catalog/hive/thrift/transport/ob_t_sasl.cpp
  catalog/hive/ob_kerberos.cpp
  catalog/hive/ob_hms_client_pool.cpp
  catalog/hive/ob_hms_catalog.cpp
  catalog/hive/ob_hive_metastore.cpp
  catalog/hive/ob_iceberg_catalog_stat_helper.cpp
  catalog/hive/ob_hive_catalog_stat_helper.cpp
)

ob_set_subtarget(ob_share io
  io/ob_io_define.cpp
  io/io_schedule/ob_io_mclock.cpp
  io/io_schedule/ob_io_schedule_v2.cpp
  io/ob_io_struct.cpp
  io/ob_io_calibration.cpp
  io/ob_io_manager.cpp
  io/ob_storage_io_usage_proxy.cpp
  io/ob_storage_io_usage_reporter.cpp
)

ob_set_subtarget(ob_share unit
  unit/ob_resource_pool.cpp
  unit/ob_unit_config.cpp
  unit/ob_unit_resource.cpp
  unit/ob_unit_info.cpp
)
ob_set_subtarget(ob_share balance
  ob_balance_define.cpp
  balance/ob_balance_job_table_operator.cpp
  balance/ob_balance_task_table_operator.cpp
  balance/ob_balance_task_helper_operator.cpp
  balance/ob_transfer_partition_task_table_operator.cpp
  balance/ob_scheduled_trigger_partition_balance.cpp
  balance/ob_object_balance_weight_operator.cpp
)

ob_set_subtarget(ob_share ncomp_dll
  ncomp_dll/ob_flush_ncomp_dll_task.cpp
)

ob_set_subtarget(ob_share resource_limit_calculator
  resource_limit_calculator/ob_resource_commmon.cpp
  resource_limit_calculator/ob_resource_limit_calculator.cpp
)

if (OB_ERRSIM)
 ob_set_subtarget(ob_share errsim_module
   errsim_module/ob_tenant_errsim_module_mgr.cpp
   errsim_module/ob_tenant_errsim_event_mgr.cpp
   errsim_module/ob_errsim_module_interface_imp.cpp
 )
endif()

ob_set_subtarget(ob_share text_analysis
  text_analysis/ob_text_analyzer.cpp
  text_analysis/ob_token_stream.cpp
)

ob_set_subtarget(ob_share throttle
  throttle/ob_throttle_common.cpp
)

ob_set_subtarget(ob_share wr
  wr/ob_wr_service.cpp
  wr/ob_wr_task.cpp
  wr/ob_wr_snapshot_rpc_processor.cpp
  wr/ob_wr_collector.cpp
)

ob_set_subtarget(ob_share object_storage
  object_storage/ob_device_config_mgr.cpp
  object_storage/ob_device_config_parser.cpp
  object_storage/ob_device_connectivity.cpp
  object_storage/ob_device_manifest.cpp
  object_storage/ob_device_manifest_task.cpp
  object_storage/ob_zone_storage_table_operation.cpp
  object_storage/ob_object_storage_struct.cpp
)

ob_set_subtarget(ob_share vector_index
  vector_index/ob_plugin_vector_index_adaptor.cpp
  vector_index/ob_plugin_vector_index_util.cpp
  vector_index/ob_plugin_vector_index_scheduler.cpp
  vector_index/ob_plugin_vector_index_service.cpp
  vector_index/ob_plugin_vector_index_serialize.cpp
  vector_index/ob_plugin_vector_index_utils.cpp
  vector_index/ob_vector_index_util.cpp
  vector_index/ob_vector_kmeans_ctx.cpp
  vector_index/ob_tenant_vector_index_async_task.cpp
  vector_index/ob_vector_index_async_task.cpp
  vector_index/ob_vector_index_async_task_util.cpp
  vector_index/ob_vector_index_param.cpp
  vector_index/ob_vector_index_ivf_cache_mgr.cpp
  vector_index/ob_ivf_async_task.cpp
  vector_index/ob_ivf_async_task_executor.cpp
  vector_index/ob_vector_index_i_task_executor.cpp
  vector_index/ob_vector_index_ivf_cache_util.cpp
  vector_index/ob_vector_embedding_handler.cpp
  vector_index/ob_json_helper.cpp
  vector_index/ob_hybrid_vector_refresh_task.cpp
)

ob_set_subtarget(ob_share vector_type
  vector_type/ob_vector_add.cpp
  vector_type/ob_vector_div.cpp
  vector_type/ob_vector_l2_distance.cpp
  vector_type/ob_vector_ip_distance.cpp
  vector_type/ob_vector_cosine_distance.cpp
  vector_type/ob_vector_l1_distance.cpp
  vector_type/ob_vector_norm.cpp
  vector_type/ob_vector_common_util.cpp
  vector_type/ob_sparse_vector_ip_distance.cpp
  vector_type/ob_vector_l2_similarity.cpp
  vector_type/ob_vector_cosine_similarity.cpp
  vector_type/ob_vector_ip_similarity.cpp
)

ob_set_subtarget(ob_share hybrid_search
  hybrid_search/ob_query_parse.cpp
  hybrid_search/ob_request_base.cpp
  hybrid_search/ob_query_request.cpp
  hybrid_search/ob_query_translator.cpp
  hybrid_search/ob_hybrid_search_executor.cpp
)

ob_set_subtarget(ob_share domain_id
  domain_id/ob_domain_id.cpp
)

ob_set_subtarget(ob_share semistruct
  semistruct/ob_sub_column_path.cpp
  semistruct/ob_semistruct_properties.cpp
)

ob_set_subtarget(ob_share lob
  lob/ob_lob_ext_info_log_allocator.cpp
)

if (NOT OB_BUILD_STANDALONE)
  ob_set_subtarget(ob_share dummy_license_mgr
    ob_dummy_license_utils.cpp
  )
endif()

ob_set_subtarget(ob_share ai_service
  ai_service/ob_ai_service_struct.cpp
  ai_service/ob_ai_service_proxy.cpp
  ai_service/ob_ai_service_executor.cpp
)

ob_add_new_object_target(ob_share ob_share)
ob_add_new_object_target(ob_share_extra ob_share_extra)

target_compile_options(ob_share PRIVATE)
#target_compile_options(ob_share PRIVATE -Wshorten-64-to-32)
target_link_libraries(ob_share PUBLIC ob_base)
target_compile_options(ob_share_extra PRIVATE)
target_link_libraries(ob_share_extra PUBLIC ob_base_without_pass)

add_library(ob_share_static
  STATIC
  EXCLUDE_FROM_ALL)

target_link_libraries(ob_share_static
  PUBLIC ob_share ob_share_extra)
